﻿// 盖游戏板 BOARDCOVER.cpp : 此文件包含 "main" 函数。程序执行将在此处开始并结束。
//

#include <iostream>


/*
https://algospot.com/judge/problem/read/BOARDCOVER

问题：

有一个H*W大小的游戏板。游戏板由黑色方块和白色方块组成的网格状，现在我们想要用3个单位大小的L形状方块覆盖所有白色方块。这些方块可以自由旋转放置，但不能重叠、覆盖黑色方块或超出游戏板范围。上图展示了一个游戏板及其覆盖方法的示例。

给定一个游戏板，请编写一个程序计算覆盖方式的数量。

输入：
输入的第一行是测试用例的数量C（C <= 30）。每个测试用例的第一行包含两个整数H和W（1 <= H，W <= 20）。接下来的H行，每行包含W个字符，表示游戏板的形状。#代表黑色方块，"."代表白色方块。给定游戏板中的白色方块数量不超过50个。

输出：
每行输出一个测试用例的白色方块被覆盖的方式数量。

示例输入：
3
3 7
#.....#
#.....#
##...##
3 7
#.....#
#.....#
##..###
8 10
##########
#........#
#........#
#........#
#........#
#........#
#........#
##########

示例输出：
0
2
1514
*/
int main()
{
    std::cout << "Hello World!\n";
}

 